using Bean.Entity.Enum;
using Bean.Entity.Model;

namespace Bean.Entity;

/// <summary>
/// 
/// </summary>
public class PolicySysRuleInfoDto
{
    /// <summary>
    /// 系统政策规则
    /// </summary>
    public long SysPolicyRuleId { get; set; }

    /// <summary>
    /// 规则名称
    /// </summary>
    public string SysRuleName { get; set; }

    /// <summary>
    /// 政策关键字
    /// </summary>
    public string PolicyKeyWord { get; set; }

    /// <summary>
    /// 供应商id
    /// </summary>
    public long SID { get; set; }

    /// <summary>
    /// 规则文本
    /// </summary>
    public string RuleText { get; set; }

    /// <summary>
    /// 适用展位
    /// </summary>
    public string ActiveExhibit { get; set; }

    /// <summary>
    /// 适用展位
    /// </summary>
    public string ActiveExhibitDesc { get; set; }

    /// <summary>
    /// 更新频率
    /// </summary>
    public int UpdateFrequency { get; set; }

    /// <summary>
    /// 定时执行时间点
    /// </summary>
    public string ChangeTimeSpan { get; set; }

    /// <summary>
    /// 下次执行时间
    /// </summary>
    public DateTime? LastExecuteTime { get; set; }

    /// <summary>
    /// 最后更新时间
    /// </summary>
    public DateTime LastUpdateTime { get; set; }

    /// <summary>
    /// 修改时间
    /// </summary>
    public DateTime UpdateTime { get; set; }

    /// <summary>
    /// 更新人
    /// </summary>
    public long UpdateUser { get; set; }

    /// <summary>
    /// 更新人
    /// </summary>
    public string UpdateUserName { get; set; }

    /// <summary>
    /// 创建人
    /// </summary>
    public long CreateUser { get; set; }

    /// <summary>
    /// 创建人
    /// </summary>
    public string CreateUserName { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreateTime { get; set; }

    /// <summary>
    /// 状态
    /// </summary>
    public int Status { get; set; }

    /// <summary>
    /// 是否有效（物理删除）  0无效  1有效
    /// </summary>
    public int IsActive { get; set; }


    /// <summary>
    /// 适用开始时间
    /// </summary>
    public string ApplicableStartTime { get; set; }

    /// <summary>
    /// 适用结束时间
    /// </summary>
    public string ApplicableEndTime { get; set; }

    // /// <summary>
    // /// 政策类型
    // /// </summary>
    // public PolicyRuleType PolicyType { get; set; }

    /// <summary>
    /// 运价类型
    /// </summary>
    public string FlightFareType { get; set; }

    /// <summary>
    /// 运价类型
    /// </summary>
    public string FlightFareTypeDesc { get; set; }

    /// <summary>
    /// 航线白名单（“,”分割）
    /// </summary>
    public string AirLineWhites { get; set; }

    /// <summary>
    /// 航线黑名单（“,”分割）
    /// </summary>
    public string AirLineBlacks { get; set; }

    /// <summary>
    /// 航班白名单（“,”分割）
    /// </summary>
    public string FlightWhites { get; set; }

    /// <summary>
    /// 航班黑名单（“,”分割）
    /// </summary>
    public string FlightBlacks { get; set; }

    /// <summary>
    /// 销售开始日期
    /// </summary>
    public DateTime SaleStartDate { get; set; }

    /// <summary>
    /// 销售结束日期
    /// </summary>
    public DateTime SaleEndDate { get; set; }

    /// <summary>
    /// 销售时间段（多个时间段“，”分割 例如  00:00-23:00,01:30-18:30）
    /// </summary>
    public string SaleTimes { get; set; }

    /// <summary>
    /// 旅行开始日期
    /// </summary>
    public DateTime TravelStartDate { get; set; }

    /// <summary>
    /// 旅行结束日期
    /// </summary>
    public DateTime TravelEndDate { get; set; }


    /// <summary>
    /// 运价类型
    /// </summary>
    public List<string> FareTypes { get; set; }

    /// <summary>
    /// 运价字典
    /// </summary>
    public Dictionary<CIDEnum, List<PolicyFareTypeEnum>> FareTypesDic { get; set; }

    /// <summary>
    /// 平台展位字典
    /// </summary>
    public Dictionary<CIDEnum, List<Exhibit>> ExhibitDic { get; set; }


    /// <summary>
    /// 平台编码
    /// </summary>
    public List<string> SPCode { get; set; }
}